/**
 * 队列接口
 * 定义队列的基本操作
 */
public interface QueueInterface<T> {
    /**
     * 判断队列是否为空
     * 
     * @return 如果为空返回true，否则返回false
     */
    boolean isEmpty();

    /**
     * 判断队列是否已满（仅顺序队列有效，链队列可返回false）
     * 
     * @return 如果已满返回true，否则返回false
     */
    boolean isFull();

    /**
     * 入队操作：将元素添加到队尾
     * 
     * @param data 要入队的元素
     * @return 入队成功返回true，否则返回false
     */
    boolean enqueue(T data);

    /**
     * 出队操作：移除并返回队头元素
     * 
     * @return 队头元素
     */
    T dequeue();

    /**
     * 查看队头元素：不移除仅返回
     * 
     * @return 队头元素
     */
    T peek();

    /**
     * 获取队列中元素个数
     * 
     * @return 元素个数
     */
    int size();

    /**
     * 清空队列中所有元素
     */
    void clear();
}

